How to Get Started Configuring Your Network in Oracle Solaris 11

This article describes some of the new features for basic Oracle Solaris 11 network configuration and shows
how to use them to add a new system to a simple but typical corporate network.

 

Published May 2012

New Features of Oracle Solaris 11 Network Configuration
Manual and Automatic Networking Modes
Manual Network Configuration
   Name Service Configuration Using SMF
   Setting the Host Name
   Changes to /etc/hosts
Automatic Network Configuration Using Profiles
   Network Profiles
   Creating a Network Configuration Profile
Summary
See Also
About the Author
 

 

The Oracle Solaris 11 network architecture is significantly different from previous releases of Oracle Solaris. Not only has the implementation changed, but so have the names of network interfaces and the commands and methods for administering and configuring them.

OTN is all about helping you become familiar enough with Oracle technologies to make an informed decision. Articles, software downloads, documentation, and more. Join up and get the technical resources you need to do your job.

These changes were introduced to bring a more consistent and integrated experience to network administration, particularly as administrators add more-complex configurations including link aggregation, bridging, load balancing, or virtual networks. In addition to the traditional fixed networking configuration, Oracle Solaris 11 introduced automatic network configuration through network profiles.

New Features of Oracle Solaris 11 Network Configuration

Oracle Solaris 11 introduced two new commands for manually administering networks, dladm and ipadm, and both supersede ifconfig. Unlike ifconfig, changes made by dladm and ipadm are persistent across reboots. They share a common, consistent command format and, unlike ifconfig, they have parseable output that can be used in scripts.

dladm performs data-link (layer 2) administration to configure physical links, aggregations, VLANs, IP tunnels, and InfiniBand partitions. It also manages link-layer properties.

ipadm configures IP interfaces, IP addresses, and TCP/IP protocol properties. It also replaces the use of ndd for network and transport layer tuning.

Data-link names are no longer the same as the physical interface, which might be a virtual device. Instead, they have generic names, such as net0 or net1, or administrators can give them descriptive names. This allows the underlying hardware to be changed without impacting the network configuration.

In addition, Oracle Solaris 11 adds automatic network configuration using network profiles. Profiles are managed with two administrative commands—netadm and netcfg—and describe the configuration of network interfaces, name services, routing, and IP filter and IPsec policies in a single entity.

Manual and Automatic Networking Modes

Oracle Solaris 11 uses profile-based network configuration, which comprises two network configuration modes: manual and automatic.

Depending on which mode you chose during installation, either the DefaultFixed network configuration profile (NCP) or the AutomaticNCP is activated on the system.

The Automatic NCP uses DHCP to obtain a basic network configuration (IP address, router, and DNS server) from any of the connected Ethernet interfaces. If this fails, it will try connecting to the best wireless network in the list of known networks.

The DefaultFixed NCP effectively disables automatic network configuration and requires the network interfaces to be manually configured using dladm and ipadm and the name services to be configured using the Oracle Solaris Service Management Facility (SMF).

It is easier to manage Oracle Solaris 11 networking by creating your own NCPs rather than using the DefaultFixed NCP and manually configuring the network.

The DefaultFixed NCP should be used on systems that will be reconfigured using Oracle Solaris Dynamic Reconfiguration or where hot-swappable interfaces are used. It must be used for IP multipathing, which is not supported when using the Automatic NCP.

You can use netadm to find out what network profiles are active on a system:

root@solaris:~# netadm list
TYPE       PROFILE     STATE
ncp        Automatic   online
ncu:phys   net0        online
ncu:ip     net0        online
loc        Automatic   online
loc        NoNet       offline
loc        User        online

 

Without going into too much detail now (we will cover this in a later section), the output above shows that the Automatic NCP is enabled.

To switch to the DefaultFixed NCP and, thus, enable manual networking, run the following command:

root@solaris:~# netadm enable -p ncp DefaultFixed
root@solaris:~# netadm list
netadm: DefaultFixed NCP is enabled; automatic network management is not available.
'netadm list' is only supported when automatic network management is active.

 

And to switch back to the Automatic NCP, use the following command:

root@solaris:~# netadm enable -p ncp Automatic
root@solaris:~# netadm list
TYPE       PROFILE     STATE
ncp        Automatic   uninitialized
ncu:phys   net0        uninitialized
ncu:ip     net0        uninitialized
loc        Automatic   uninitialized

 

As the system starts to configure the data links and receives an IP address from the DHCP server, we soon get back to our original online state:

root@solaris:~# netadm list
TYPE       PROFILE     STATE
ncp        Automatic   online
ncu:phys   net0        online
ncu:ip     net0        online
loc        Automatic   online
loc        NoNet       offline
loc        User        online

 

Manual Network Configuration

In the following example, we will manually configure our server to have a static IPv4 address of 10.163.198.20.

First of all, we will switch to the DefaultFixed NCP, if that hasn't been done already:

root@solaris:~# netadm enable -p ncp DefaultFixed

 

On a machine with multiple physical networks, you can use dladm to determine how network interface names are mapped to physical interfaces.

root@solaris:~# dladm show-phys
LINK              MEDIA                STATE      SPEED  DUPLEX    DEVICE
net0              Ethernet             up         1000   full      e1000g0
net1              Ethernet             unknown    0      unknown   pcn0

 

Creating a static IP address is a two-step process, and it involves creating an IP interface and an IP address. There can be multiple IP addresses associated with an IP interface. IP address objects have names in the form interface/description.

In the example shown in Listing 1, we use acme as the description.

root@solaris:~# ipadm create-ip net0
root@solaris:~# ipadm show-if
IFNAME     CLASS      STATE      ACTIVE      OVER
lo0        loopback   ok         yes         ---
net0       ip         down       no          ---
root@solaris:~# ipadm create-addr -T static -a 10.163.198.20/24 net0/acme
root@solaris:~# ipadm show-if
IFNAME      CLASS     STATE      ACTIVE      OVER
lo0         loopback  ok         yes         ---
net0        ip        ok         yes         ---
root@solaris:~# ipadm show-addr
ADDROBJ     TYPE      STATIC     ADDR
lo0/v4      static    ok         127.0.0.1/8
net0/acme   static    ok         10.163.198.20/24
lo0/v6      static    ok         ::1/128

Listing 1. Configuring a Static IP Address

We can then add a persistent default route:

root@solaris:~# route -p add default 10.163.198.1
add net default: gateway 10.163.198.1
add persistent net default: gateway 10.163.198.1

 

Name Service Configuration Using SMF

The name service configuration is now stored and configured via SMF services instead of via configuration files in /etc. This change is part of a wider set of configuration changes in Oracle Solaris 11, which provides a greater degree of administrative auditability and control over system configuration, particularly during system updates.

The SMF service svc:/network/dns/client manages configuration information that used to be in /etc/resolv.conf. The SMF service svc:/system/name-service/switch manages configuration information that used to be in /etc/nsswitch.conf. In both cases, the configuration information is also stored in the legacy files for compatibility with other applications that might read them. You should not directly edit these legacy files. Changes made to properties are not reflected in the legacy files until the service is refreshed, restarted, or enabled.

Note: Specifying lists and strings as SMF properties requires quoting them or escaping parentheses and quotation marks to prevent the shell from interpreting them.

Example: Configuring a DNS Client Using SMF

In the following example, we configure Domain Name Service (DNS) using the svccfg command on the svc:/network/dns/clientSMF service. This will give us the ability to look up IP addresses for host names and vice versa:

root@solaris:~# svccfg -s svc:/network/dns/client setprop \
config/search='("uk.acme.com" "us.acme.com" "acme.com")'

root@solaris:~# svccfg -s svc:/network/dns/client listprop config/search
config/search astring	"uk.acme.com" "us.acme.com" "acme.com"

root@solaris:~# svccfg -s svc:/network/dns/client setprop \
config/nameserver=net_address: '(10.167.162.20 10.167.162.36)'

root@solaris:~# svccfg -s svc:/network/dns/client listprop config/nameserver
config/nameserver net_address 10.167.162.20 10.167.162.36 

 

After we have made the configuration changes, we refresh the SMF service:

root@solaris:~# svcadm refresh svc:/network/dns/client 

 

It is not necessary to set the properties for every name service database. You can use the special property config/default to provide a default value. You can individually customize entries that can't use the default value.

Example: Configuring /etc/switch.conf Using SMF

In the following example, we use the name service switch mechanism to allow our system to search through the DNS, LDAP, NIS, or local file sources for naming information. We again use the svccfg command on the svc:/system/name-service/switch SMF service:

root@solaris:~# svccfg -s svc:/system/name-service/switch setprop config/default = "files nis" 
root@solaris:~# svccfg -s svc:/system/name-service/switch setprop config/host = "files dns nis" 
root@solaris:~# svccfg -s svc:/system/name-service/switch setprop config/password  = "files nis" 
root@solaris:~# svcadm refresh svc:/system/name-service/switch 

 

Note: The config/host property defines both the hosts and ipnodes entries in /etc/nsswitch.conf, while the config/password property defines the passwd entry. The remaining properties have the same name as their /etc/nsswitch.confentries.

Setting the Host Name

In Oracle Solaris 11, /etc/nodename has been removed and replaced with the config/nodename property of the svc:/system/identity:node service.

To set the host name, we again use svccfg:

root@solaris:~# svccfg -s svc:/system/identity:node setprop config/nodename = astring: hostname
root@solaris:~# svcadm refresh svc:/system/identity:node
root@solaris:~# svcadm restart identity:node

 

Setting the host name this way will work for both automatic and manual network configurations.

Changes to /etc/hosts

In Oracle Solaris 11, the host's own entry in /etc/hosts is now the same as that of localhost. In previous versions of Oracle Solaris, this entry was associated with the first network interface.

root@solaris:~# cat /etc/hosts
#
# Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
# Use is subject to license terms.
#
# Internet host table
#
::1 solaris localhost 
127.0.0.1 solaris localhost loghost 

 

Note: Some application installers might fail due to changes in the /etc/hosts file. If you experience this, you might have to edit /etc/hosts directly.

Automatic Network Configuration Using Profiles

In Oracle Solaris 11, network profiles help to aggregate network configuration that was scattered across multiple different configuration files in previous versions of Oracle Solaris. Switching network profiles results in a set of changes to different network configuration that is applied in a single administrative operation.

The traditional configuration files still exist for compatibility reasons only, but you should not directly edit any of these files because any modifications will be overwritten when a profile is activated or the system is rebooted.

Network Profiles

A network profile contains a Network Configuration Profile (NCP) and a Location Profile at a minimum, and it optionally contains External Network Modifiers (ENMs) and Known Wireless Networks (WLANs).

NCPs define a set of data links and IP interfaces as Network Configuration Units (NCUs). A Location Profile defines additional configuration, such as name service, IP filter rules, and IPsec policies that can be configured only after basic IP configuration.

ENMs are applications or services that directly modify the network configuration when a profile is activated or deactivated. An ENM would be needed to configure a virtual private network (VPN), for example. The use of ENMs or the configuration of wireless networks is not covered in this article.

Profiles have an activation mode that is either manual or automatic. When an automatic profile is active, external network events cause Oracle Solaris to re-evaluate which is the "best" automatic profile and make that profile active. External events include connecting or disconnecting an Ethernet cable, obtaining or losing a DHCP lease, or discovering a wireless network. There is always an active NCP and Location Profile. It is not possible to disable networking by disabling the current profile.

Creating a Network Configuration Profile

Without modification, the Automatic profile is generally unsuitable for most corporate networks, which are either static or provide more configuration information via DHCP than the Automatic profiles uses.

If your network has statically allocated IP address, you will need to create an NCP and a Location Profile.

In this example, we look at a typical corporate network of a fictional Acme corporation. It has statically allocated network addresses, uses a combination of NIS and DNS, and does not use IPv6.

To configure a system on the Acme network, we need to create an NCP and a Location Profile.

Example: Creating an NCP

To create the NCP and its component NCUs, we use netcfg. For the physical link, we accept the defaults provided by netcfg. For the IP configuration, we want IPv4 addressing and static IP address allocation, as shown in Listing 2.

root@solaris:~# netcfg
netcfg> create ncp acme.corp.ncp
netcfg:ncp:acme.corp.ncp> create ncu phys net0
Created ncu 'net0'.  Walking properties ...
activation-mode (manual) [manual|prioritized]> 
link-mac-addr> 
link-autopush> 
link-mtu> 
netcfg:ncp:acme.corp.ncp:ncu:net0> list
ncu:net0
    type               link
    class              phys
    parent             "acme.corp.ncp"
    activation-mode    manual
    enabled            true
netcfg:ncp:acme.corp.ncp:ncu:net0> end
Committed changes
netcfg:ncp:acme.corp.ncp> create ncu ip net0
Created ncu 'net0'.  Walking properties ...
ip-version (ipv4,ipv6) [ipv4|ipv6]> ipv4
ipv4-addrsrc (dhcp) [dhcp|static]> static
ipv4-addr> 10.163.198.20/24
ipv4-default-route> 10.163.198.1
netcfg:ncp:acme.corp.ncp:ncu:net0> list
ncu:net0
    type                interface
    class               ip
    parent              "acme.corp.ncp"
    enabled             true
    ip-version          ipv4
    ipv4-addrsrc        static
    ipv4-addr           "10.163.198.20/24"
    ipv4-default-route  "10.163.198.1"
    ipv6-addrsrc        dhcp,autoconf
netcfg:ncp:acme.corp.ncp:ncu:net0> end
Committed changes
netcfg:ncp:acme.corp.ncp> end
netcfg> end

Listing 2. Creating the NCP

Now we need to create the Location Profile, as shown in Listing 3. We associate the Location Profile to the network profile through its activation mode. The Location Profile will automatically activate as long as the NCP is active.

Since Acme uses a combination of NIS and DNS name services, we need to provide our own /etc/nsswitch.conf, which we will call /etc/nsswitch.acme.

root@solaris:~# netcfg
netcfg> create loc acme.corp.loc
Created loc 'acme.corp.loc'.  Walking properties ...
activation-mode (manual) [manual|conditional-any|conditional-all]> conditional-all
conditions> ncp acme.corp.ncp is active
nameservices (dns) [dns|files|nis|ldap]> dns,nis
nameservices-config-file ("/etc/nsswitch.dns")> /etc/nsswitch.acme
dns-nameservice-configsrc (dhcp) [manual|dhcp]> manual
dns-nameservice-domain> 
dns-nameservice-servers> 10.167.162.20,10.167.162.36
dns-nameservice-search> acme.com,uk.acme.com,us.acme.com
dns-nameservice-sortlist> 
dns-nameservice-options> 
nis-nameservice-configsrc [manual|dhcp]> manual
nis-nameservice-servers> 10.167.162.21
default-domain> acme.com
nfsv4-domain> 
ipfilter-config-file> 
ipfilter-v6-config-file> 
ipnat-config-file> 
ippool-config-file> 
ike-config-file> 
ipsecpolicy-config-file> 
netcfg:loc:acme.corp.loc> list
loc:acme.corp.loc
    activation-mode             conditional-all
    conditions                  "ncp acme.corp.ncp is active"
    enabled                     false
    nameservices                dns,nis
    nameservices-config-file    "/etc/nsswitch.acme"
    dns-nameservice-configsrc   manual
    dns-nameservice-servers     "10.167.162.20","10.167.162.36"
    dns-nameservice-search      "acme.com","uk.acme.com","us.acme.com"
    nis-nameservice-configsrc   manual
    nis-nameservice-servers     "10.167.162.21"
    default-domain              "acme.com"
netcfg:loc:acme.corp.loc> end
Committed changes
netcfg> end

Listing 3. Creating the Location Profile

Now we can activate the NCP, as shown in Listing 4, and the Location Profile will be automatically activated.

root@solaris:~# netadm enable acme.corp.ncp
Enabling ncp 'acme.corp.ncp'
root@solaris:~# netadm list
TYPE        PROFILE        STATE
ncp         acme.corp.ncp  online
ncu:phys    net0           online
ncu:ip      net0           online
ncp         Automatic      disabled
loc         acme.corp.loc  online
loc         Automatic      offline
loc         NoNet          offline
loc         User           disabled

Listing 4. Activating the NCP

Editing an NCP

There are two ways to edit an existing NCP with netcfg. The set command lets you set individual properties, while the walkpropcommand walks you through all the properties.

netcfg automatically performs a walkprop command when you create a profile.

In example shown in Listing 5, we add a third DNS server to the existing acme.corp.loc Location Profile.

root@solaris:~# netcfg
netcfg> select loc acme.corp.loc 
netcfg:loc:acme.corp.loc> list 
loc:acme.corp.loc 
    activation-mode             conditional-all 
    conditions                  "ncp acme.corp.ncp is active" 
    enabled                     false 
    nameservices                dns,nis 
    nameservices-config-file    "/etc/nsswitch.acme" 
    dns-nameservice-configsrc   manual 
    dns-nameservice-servers     "10.167.162.20","10.167.162.36" 
    dns-nameservice-search      "acme.com", "uk.acme.com","us.acme.com"
    nis-nameservice-configsrc   manual
    nis-nameservice-servers     "10.167.162.21"
    default-domain              "acme.com" 
netcfg:loc:acme.corp.loc>

Listing 5. Adding a DNS Server

The list command shows only properties that have been set; list -a shows all the properties of the profile, as shown in Listing 6.

netcfg:loc:acme.corp.loc> list -a
loc:acme.corp.loc 
    activation-mode             conditional-all 
    conditions                  "ncp acme.corp.ncp is active" 
    enabled                     false 
    nameservices                dns,nis 
    nameservices-config-file    "/etc/nsswitch.acme" 
    dns-nameservice-configsrc   manual
    dns-nameservice-domain 
    dns-nameservice-servers     "10.167.162.20","10.167.162.36" 
    dns-nameservice-search      "acme.com", uk.acme.com","us.acme.com"
    dns-nameservice-sortlist
    dns-nameservice-options
    nis-nameservice-configsrc   manual
    nis-nameservice-servers     "10.167.162.21"
    ldap-nameservice-configsrc
    ldap-nameservice-servers
    default-domain              "acme.com"
    nfsv4-domain
    ipfilter-config-file
    ipfilter-v6-config-file
    ipnat-config-file
    ippool-config-file
    ike-config-file
    ipsecpolicy-config-file
netcfg:loc:acme.corp.loc>

netcfg:loc:acme.corp.loc> set dns-nameservice-servers = "10.167.162.20","10.167.162.36","192.135.82.44" 
netcfg:loc:acme.corp.loc> list 
loc:acme.corp.loc 
    activation-mode             conditional-all 
    conditions                  "ncp acme.corp.ncp is active" 
    enabled                     false 
    nameservices                dns,nis 
    nameservices-config-file    "/etc/nsswitch.dns" 
    dns-nameservice-configsrc   manual 
    dns-nameservice-servers     "10.167.162.20","10.167.162.36","192.135.82.44" 
    dns-nameservice-search      "acme.com", uk.acme.com","us.acme.com"
    nis-nameservice-configsrc   manual
    nis-nameservice-servers     "10.167.162.21"
netcfg:loc:acme.corp.loc> verify 
All properties verified 
netcfg:loc:acme.corp.loc> commit 
Committed changes 
netcfg:loc:acme.corp.loc> end 
netcfg> end 
root@solaris:~#

Listing 6. Showing All Properties

Summary

Network configuration has substantially changed in Oracle Solaris 11 with the introduction of network configuration profiles and consolidated administration across the different facets of networking fabrics in the data center. By using network configuration profiles, administrators can simplify complex configurations and apply them as a single unit of change.

See Also

For more information related to Oracle Solaris 11 network administration, see the following administration guides:

Here are some additional Oracle Solaris 11 resources:

Read more

世界越快心越慢

在晚飯後的休息時間,我特別享受在客廳瀏灠youtube上各樣各式創作者的影音作品。很大不同於傳統媒體,節目多是針對大多數族群喜好挑選的,在youtube上我會依心情看無腦的動畫、一些旅拍記錄、新聞時事談論。 尤其在看了大量的Youtube的分享後,我真的感受到會限制我的是我的無知,特別是那些我想都沒想過的實際應用,在學習後大大幫助到我的生活和工作層面。 休息在家時,我喜歡想一些沒做過的菜,動手去設計生活和工作上的解決方案,自己是真的很難閒著沒事做。 如創作文章,陪養新的習慣都能感覺到成長的喜悅,是不同於吃喝玩樂的快樂的。 創作不去限制固定的形式,文字是創作、影像聲音也是創作,記錄生活也是創作,我想留下的就是創造—》實現—》回憶,這樣子的循環過程,在留下的足跡面看到自己一路上的成長、失敗、絕望、重新再來。 雖然大部份的時候去做這些創作也不明白有什麼特別的意義,但不去做也不會留下什麼,所以呀不如反事都去試試看,也許能有不一樣的水花也許有意想不到的結果,投資自己永遠不會是失敗的決定,不是嗎?先問問自己再開始計畫下一步,未來沒人說得準。 像最近看youtube仍大一群人在為DOS開

By Phillips Hsieh

知識管理的三個步驟:一小時學會把知識運用到生活上

摘錄瓦基「閱讀前哨站」文章作為自己學習知識管理的內容 Part1「篩選資訊」 如何從海量資訊中篩選出啟發性、實用性和相關性的精華,讓你在學習過程中不再迷失方向。 1. 實用性 2. 啟發性 Part2「提高理解」 如何通過譬喻法和應用法,將抽象的知識與日常生活和工作緊密結合,建立更深刻的理解。 1. 應用法 2. 譬喻法 Part3「運用知識」 如何連結既有知識,跟自己感興趣的領域和專案產生關聯,讓你在運用知識的路途上游刃有餘。 1. 跟日常工作專案、人際活動產生連結 # 為什麼要寫日記? * 寫日記是為了忘記,忘卻瑣碎事情,保持專注力 * 寫日記就像在翻譯這個世界,訓練自己的解讀能力 * 不只是透過日記來記錄生活,而是透過日記來發展生活 #如何寫日記? * 不要寫流水帳式的日記,而是寫覆盤式的日記 當我們試著記錄活動和感受之間的關聯,有助於辦認出真正快樂的事 日記的記錄方式要以過程為主,而非結果 * 感恩日記的科學建議,每日感恩的案例

By Phillips Hsieh
2024年 3月30日 14屆美利達環彰化百K

2024年 3月30日 14屆美利達環彰化百K

這是場半小時就被秒報名額滿的經典賽事, 能順利出賽實屬隊友的功勞, 這次的準備工作想試試新買的外胎, 因為是無內胎用的外胎, 特別緊超級難安裝的, 問了其他朋友才知道, 要沾上肥皂水才容易滑入車框。 一早四點起床準備, 五點集合備好咖啡在車上飲用, 約了六點在彰化田尾鄉南鎮國小, 整好裝四人一起出發前往會場。 被排在最後一批出發, 這次的路線會繞行的員林148上139縣道, 其實在早上五點多天就開始有點飄雨, 大伙就開始擔心不會要雨戰吧! 果不其然才出發準備上148爬坡雨勢越來越大, 戴著防風眼鏡的我在身體的熱氣加上雨水冷凝效果下, 鏡面上滿是霧氣肉眼可視距離才剩不到五公尺, 只能緊依前前方的車友幫忙開路, 之後洪大跟上來我立馬請求他幫忙開路, 上了139停下車把防風眼鏡收起來, 反正下雨天又陰天完全用不到太陽眼鏡了。 雨是邊下邊打雷, 大伙都在這條139上一台一台單車好像避電針, 一時有點害怕不然想平時沒做什麼壞事, 真打到自己就是天意了。 下了139雨勢開始變小, 大伙的速度開始有所提昇, 開高鐵列車的時機己成熟, 物色好列車就跟好跟滿。 最後找了一隊似乎整團有固定在練

By Phillips Hsieh
2023 12月9號 美利達單車嘉年華

2023 12月9號 美利達單車嘉年華

第二次參加美利達環南投賽事, 還記得去年第一次參加這美利達環南投, 還特地提前一天跟車友在魚池住了一晚。 這回用上了剛在7月份剛安裝的車頂架, 安裝了二種不同的攜車架, 都樂這邊可以不用拆車輪直上車頂, YAKIMA這邊選了經濟的款式, 折掉前輪利用前叉固定在攜車架上。 約了唯一一位一起參加的朋友, 二人一早四點約見面, 幫朋友帶上了拿鐵咖啡, 開上日月潭在水社碼頭停好車, 騎往向山遊客中心, 路過美麗的日月潭簡直不要太美了拍一張。 抵達會場己是人山人海了, 跟著大伙排隊順便也看網紅也欣賞名車。 出發就先沿著日月潭順時針騎, 騎到玄裝寺很急停下來上一下廁所, 比賽時都會尿都特別的滿, 一方面是比較緊張,一方面是特別興奮。 這時己經跟車友失散了, 只能獨推沿路看有沒有車友可以一起組隊的, 很可惜在山區大家的實力不一只求平安順騎了, 原則就是有補給就停有食物就吃。 下到水里人群再次聚集起來, 光等紅綠燈就是一條車龍。 騎行了一大圈水里再回到131縣道, 這時背後傳來熟悉的聲音叫菲哥, 終於跟車友重新集合接下來就一路邊聊邊騎。 最後來幾張專業攝影師拍攝的照片 回到終點台上

By Phillips Hsieh